The third generation mobile communication (3rd Generation, shortened as “3G”) technology has become one of the communication technologies that attract the highest attention in the world; as a new communication technology, 3G supports not only traditional circuit switching but also packet switching. However, some technologies following 3G, such as B3G (Beyond 3G) and WiMax (Worldwide Interoperability for Microwave Access), etc, have all transformed the focus towards packet switching, i.e. primarily supporting the IP (Internet Protocol, shortened as “IP”) technology.
For applications of multimedia such as voice and the like, the IP technology can bring about reduction of costs; when voice is transmitted according to the traditional IP format, however, a voice packet will be carried over RTP (Real-time Transport Protocol, shortened as “RTP”) and UDP (User Datagram Protocol, shortened as “UDP”) protocols, and relative to a voice data payload, an RTP/UDP/IP message would generate a very large header overhead, and there are a total of 40 bytes in IPv4 (IP Version 4), but there are 60 bytes in IPv6 (IP Version 6), while there are only a dozen of bytes in an actual voice payload, so the utilization efficiency of bandwidth is only about 20%. This would result in a huge waste for wireless air interface resources, while a very big chunk of the operating cost of a communication operator comes from purchase of the right to use radio frequency channels, therefore it would be very disadvantageous to the profitability of the operator if the expensive radio frequency spectrums can not be used efficiently. For this reason, the Internet Engineering Task Force (shortened as “IETF”) has introduced a Robust Header Compression (shortened as “ROHC”) technology, which can improve the transmission efficiency of network data by compressing the RTP/UDP/IP headers. As a universal IP-based compression technology, the ROHC can be applied in not only to any 3G standard but also such technologies following 3G as B3G and WiMax, and it can be applied in not only base stations and user terminals but also core network segments. The ROHC can compress a 40-byte header down to a 1-byte one at the most, thereby improving the actual utilization efficiency of bandwidth to over 90%.
A fundamental principle of the ROHC protocol is to classify each header field of a message, because during a transmission process of the entire stream, adjacent packets have many invariable parts, such as IP addresses and UDP port numbers, etc, and also have some regular variations, such as an SN (Sequence Number, shortened as “SN”) of an RTP header and a TS (Timestamp, shortened as “TS”), etc. The ROHC protocol classifies the message header into a static part and a dynamic part. Each of a compressor and a decompressor saves a piece of context which is relevant information for each data stream. A complete message would be sent by the compressor at the first time, and the decompressor obtains static information and dynamic information by decompressing it, and subsequently, the compressed message would no longer contain the static part of the original message.
For an air interface part, major fields that may change include an RTP header's a Sequence Number (SN), a Timestamp (TS) and an IP fragment identifier IP-ID (IP Identifier, shortened as “IP-ID”). For such multimedia applications as VoIP, the SNs of the adjacent packets are incremented by 1; for the TS, because a sampling value of voice is fixed and an interval between each sent packet is also fixed, the increment of the TS of the sent packet is also fixed, which is set as a stride value (TS-STRIDE), therefore the TSs of the adjacent packets are also incremented by a unit of a fixed TS-STRIDE; if the IP-ID does not select to change in a random increment mode, then it is also incremented by 1 directly in the adjacent packets, so that the values of both the TS and the IP-ID can actually always be directly deduced from the SN.
The ROHC mainly uses a WLSB (Window-Based Least Significant Bits, shortened as “WLSB”) algorithm to compress the SN, the TS and the IP-ID. Those values that change insignificantly are compressed by using the WLSB algorithm, a basic idea of this algorithm is to replace the original field value with low-k bits in an original field value to implement transmission, and to save a reference value corresponding to the field into the context of both a compressor and a decompressor, and to restore the original field value by the decompressor based on this reference value, a pre-negotiated shifting value and the k bits received. The algorithm introduces a concept of interpretation intervals to ensure the correctness of the compression and the decompression. The interpretation interval defines an interval of a decoded value, and the compressor selects the low-k bits to send according to a certain rule, while the decompressor searches in the interpretation interval to find the value of the low-k bits which is identical to the received k bits and uses the value as the decoded value.
The ROHC protocol is based on an RFC3095 (Request For Comments, shortened as “RFC”) protocol, the RFC3095 specifies that the WLSB compression algorithm defines an interpretation interval based on a reference value “Ref” and a shifting value p as well as the received k-bit m of a receiver; a lower limit of the interpretation interval is Low=Ref−p, and its upper limit is High=Ref+(2^k−1)−p, wherein, the “^” means exponentiation.
The interpretation interval is a range of values, and a decoded value must fall within the interpretation interval. It can be seen from the definition of the interpretation interval that High=Low+(2^k−1), i.e. the upper limit “High” is equal to the sum of the lower limit “Low” and “1 . . . 1” (k bits of 1), therefore if the low-k bits of the lower limit are not zeros, then the upper limit will have a carry in the (k+1)th bit relative to the lower limit “Low”, and the entire interpretation interval will demonstrate a law as below:
if the low-k bits of the lower limit “Low” are zeros, then the high bits of the lower limit “Low” and the high bits of the upper limit “High” are identical, and the high bits of the entire interpretation interval only has this situation;
if the low-k bits of the lower limit “Low” are not zeros, then for the entire interpretation interval, there are only two situations for the high bits, one is that the high bits are identical to the high bits of the lower limit “Low”, and the other is that the high bits are identical to the high bits of the upper limit “High”, since there is a carry, therefore the high bits of the upper limit “High” is greater than the high bits of the lower limit “Low” by 1.
It can be seen from the above that, if the decompressor of the ROHC searches values of the low-k bits one by one in the interpretation interval and takes the one that is identical to the value of the received k bits as the decoded value, then the decoding efficiency is obviously low and the information on the received k bits and the saved reference value are not fully utilized. If the decompressor selects to directly replace the low-k bits of the reference value, then the shifting value and the definition of the interpretation interval are not fully considered, the decoded value thus obtained would only be partially correct, and the correctness of decoding can not be guaranteed. It is therefore necessary to provide a decompression method that can fully consider the shifting value and the definition of the interpretation interval, and can utilize the value of the received low-k bits and the reference value to completely and efficiently guarantee decoding with higher correctness.